IV stands for individual value, and it means the hidden stats of a single Pokemon used to determine how good they are. You can level up your Pokemon with dust and candy to make them stronger, but you can never improve their IVs, so a maxed out Pokemon with low IVs will not be as strong as a maxed out Pokemon with high IVs.
That means that in the long run it is more beneficial to look for Pokemon with high IVs than Pokemon with high natural CP (which can be upgraded indefinitely over time with renewable resources).
The three IVs in Pokemon Go are stamina, attack and defense. Each of these stats has a value between 0 and 15, so a perfect Pokemon is one with IVs of 15/15/15. The formulas for things like hp, damage dealt and damage taken are related to the IVs. They are also related to the Pokemon's "level" which is increased by one every time you power them up.
CP is calculated as a combination of the Pokemon's IVs and level.
Not all of the effects of IVs are things that can be measured, but there are three things you can measure to help calculate IVs. Those are CP, hp and dust cost to upgarde. Dust cost is only related to level, but since level is part of the formula for CP and hp, knowing the dust cost gives you a narrower range of values for the inputs of those numbers. The one other thing that goes into the calculation of IVs is
whether or not you've ever powered up that Pokemon before. That's just because Wild pokemon are always an odd level, so if you haven't powered them up before it can narrow down the possible sets of IVs significantly.